1. Field of the Invention
The invention relates to a data bus message logger and, in particular, to event-driven portable data bus message loggers that utilize redundancy to verify error codes.
2. Description of the Related Art
Control systems in automotive vehicles may be designed to produce error codes to aid in diagnosing a source of a malfunction. Computer controls that produce such error codes may control an engine, so-called engine control modules (ECM), a transmission (transmission control modules (TCM)), a power train (power train control modules (PCM)), or an entire vehicle (vehicle control modules (VCM)). One or more of these control modules may be present in a vehicle. Control modules may communicate with various vehicle subsystems under their control, and with each other, over a bus. In some cases signals from various control modules are multiplexed over the same bus. In other cases individual control modules have their own buses.
In the case of a malfunction, subsystems under the control of a control module may send error codes back to the control module. In the alternative, the control module may monitor signals representative of the subsystems' status or activities and send its own error code to a memory location, where it may be accessed by diagnostic personnel. The subsystems may be sensors, control systems, or actuators.
A sensor or a control module may produce an error code, called ‘setting a code’, if a parameter sensed by the sensor appears to be out of an expected range. It may be difficult to tell, however, whether a parameter that is outside of an expected range is the result of another component malfunction or a malfunction of the sensor itself. One of the more time-consuming aspects of diagnosing a malfunction is determining whether the signal from a sensor ought to be trusted, i.e. the component is bad, or whether the sensor itself is malfunctioning. Such determinations often require a laborious trouble-shooting process. With any trouble-shooting processes, there is always a risk that errors are occurring in the analysis tools themselves, rather than, or in addition to, malfunctions in the underlying components.
If a malfunction is intermittent, that is, if the malfunction occurs due to a confluence of several relatively rare events, it can become difficult to reproduce the malfunction in the first place, let alone decide whether there is truly a component malfunction or if the sensor itself is producing faulty information. Since an error code is an interpretation of a signal, it adds a further degree of uncertainty to the diagnostic process. The error code, for example, may have been garbled during translation of an otherwise representative sensor signal.
A checksum is often appended to a string of bits to offer a warning if the string of bits is garbled during transmission. The checksum may, for example, be a sum of some or all of the bits being transmitted. If the checksum does not add up to the expected sum, therefore, there is a fairly good chance that one bit has been mis-transmitted, and the message is therefore erroneous. If the probability that an individual bit will be mis-transmitted is small, the probability that two bits will be mis-transmitted is the one-bit probability squared. Therefore the chances of two bits being transmitted erroneously, which would make the checksum look as though the string had not been garbled, is often neglected. A checksum can thus be a valuable diagnostic tool in itself.
A bus to which a control module is connected may have a diagnostic link over which a technician can gain access to the messages traveling the bus for review. Such links go by various names, Assembly Line Diagnostic Link (ALDL), Vehicle Diagnostic Link (VDL), and so on. In general, a diagnostic link may comprise a six- or eight-pin serial- or parallel-port connector into which a scanning type device may be plugged to receive diagnostic codes for review later or display. If the scanning device is reading the same codes that the control module is seeing, however, and the control module is garbling the error codes, it may be difficult to know what the true error code ought to have been, or what value the underlying activity really produced. A value may look alright, but with no sure knowledge of the underlying statistic it purports to represent it may be difficult to know for sure. A sensor value that looks alright may mask a symptom, leading to a true malfunction being overlooked or diagnosed incorrectly.